{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 卷积计算过程\n",
    "\n",
    "    卷积计算可认为是一种有效提取图像特征的方法\n",
    "    一般会用一个正方形的卷积核，按指定步长，在输入特征图上滑动，\n",
    "    遍历输入特征图中的每个像素点。每一个步长，卷积核会与输入\n",
    "    特征图出现重合区域，重合区域对应元素相乘、求和再加上偏置项\n",
    "    得到输出特征的一个像素点。\n",
    "    \n",
    "    输入特征图的深度（channel数）决定了当前层卷积核的深度；\n",
    "    当前层卷积核的个数，决定了当前层输出特征图的深度。\n",
    "    \n",
    "    \n",
    "    3*3*1卷积核\n",
    "    每个核3*3*1+1=10个参数\n",
    "    \n",
    "    3*3*3卷积核\n",
    "    每个核3*3*3+1=28个参数\n",
    "    \n",
    "    5*5*3卷积核\n",
    "    每个核5*5*3+1=76个参数\n",
    "\n",
    "    输入特征图→卷积核→输出特征图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 感受野（Receptive Field）\n",
    "\n",
    "    卷积神经网络各输出特征图中的每个像素点，在原始输入图片上映射区域的大小。\n",
    "    eg:\n",
    "    原始输入5*5→3*3卷积核→3*3卷积核→1*1特征图（感受野5）\n",
    "    原始输入5*5→5*5卷积核→1*1特征图（感受野5）\n",
    "    \n",
    "    如何选取：根据待训练数量和计算量(假设输入特征宽高都为x，卷积计算步长为1)\n",
    "    2个3*3卷积核：参数量9+9=18；计算量18x^2-108x+180\n",
    "    1个5*5卷积核：参数量25；计算量25x^2-200x+400\n",
    "    \n",
    "    当x>10 时，两层3*3卷积核 优于 一层5*5卷积核"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 全零填充（Padding）\n",
    "    卷积计算保持输入特征图的尺寸不变\n",
    "    eg:\n",
    "    在输入特征图周围填充0\n",
    "    输入特征图5*5*1→全零填充→7*7*1→3*3卷积核→5*5*1特征图\n",
    "    \n",
    "    padding：①SAME（全零填充）：入长/步长（向上取整）\n",
    "          ②VALID（不全0填充）：（入长-核长+1）/步长（向上取整）\n",
    "    TF描述全零填充\n",
    "    用参数padding = ‘SAME’ 或 padding = ‘VALID’表示\n",
    "    eg：\n",
    "    输出宽或高：   5/5=1          （5-3+1）/1=3\n",
    "          SAME： 5x5x1 5x5x1   VALID： 5x5x1 3x3x1"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
